#!/usr/bin/env python
# -*- coding: utf-8 -*-

import codecs
import re
import os



pth = os.getcwd()
full_ls = os.listdir(pth)
full_ls.sort() # полный список файлов в дир

def desc_func(full_ls):
    try:
        fp = codecs.open('Descript.ion', "rb", "cp866")	# читаем файло
    except IOError:
        print 'cant open descript.ion at', os.getcwd()
        return False
    desc_lns = fp.readlines() # список строк с описанием
    fp.close()
    
    reg = re.compile(r"(^(\".*?\"|[^ ]*) (.*$))")
    comm_dic = {} # словарь из имен файлов и комм
 
    # набиваем словарь comm_ls значениями из файла       
    for i in range(len(desc_lns)):
        desc_lns[i] = desc_lns[i].encode('utf8')
        three = reg.match(desc_lns[i]).groups()
        three = list(three)
        three[1] = three[1].replace('"','')
#        print three[1]
        if os.path.isdir(three[1]):
            three[1] = '/' + three[1]
#        comm_dic[three[1].replace('"','')] = three[2].rstrip()
        comm_dic[three[1]] = three[2].rstrip()

    return comm_dic

def desc_write(comm_dic):
    comm_ls = comm_dic.items()
    comm_ls.sort()
    utf = open('desc.utf', 'w')
    
    for x in comm_ls:
        utf.write(x[0].encode('utf8') + "||")
    	if x[1]:
	        utf.write(x[1].encode('utf8') + '\n')
        else:
             utf.write('\n')
    utf.close()
    print "desc.utf saved to current dir"
 
if __name__ == '__main__':
    if 'Descript.ion' in full_ls:
        if 'desc.utf' in full_ls:
            print 'Whatchit! Theres desc.utf in the dir already!'
        else:
            desc_write(desc_func(full_ls))
    else:
        print 'No Descript.ion available' 
